package com.followmeandroid.messages;

import java.util.UUID;

/**
 * <p>Title: SendMessageToRequest</p>
 * <p>Description: Container class for storing
 * send message to requests for the server.</p>
 * @author Adam Drews
 * @email adam.drews@my.uwrf.edu
 * @date 11/17/2014
 * @team Tyler Johnson
 * @email tyler.johnson@my.uwrf.edu
 * @team Nicholas Thorp
 * @email nicholas.thorp@my.uwrf.edu
 */
public class SendMessageToRequest extends ARequestBase {
    private String messageType;

    private String content;

    private double lattitude;

    private double longitude;

    private String memberToID;

    /**
     * Constructor for a send message to another user request,
     * with the ID for the intended member and the content
     * of a message for parameters.
     * @param memToID       The member ID of the intended recipient.
     * @param contentIn     The message contents.
     */
    public SendMessageToRequest(String memToID, String contentIn){
        memberToID = memToID;
        content = contentIn;
    }

    /**
     * Constructor for a send message to another user request,
     * with the ID for the intended member, the content
     * of a message, the latitude and longitude, and message
     * type for parameters.
     * @param memToID       The member ID of the intended recipient.
     * @param contentIn     The message contents.
     * @param lat           The latitude to be sent.
     * @param longi         The longitude to be sent.
     * @param messType      The type of message to be sent.
     */
    public SendMessageToRequest(String memToID, String contentIn, double lat, double longi, String messType){
        memberToID = memToID;
        content = contentIn;
        longitude = longi;
        lattitude = lat;
        messageType = messType;
    }

    /**
     * Constructor for a send message to another user request,
     * with the ID for the intended member and the content
     * of a message for parameters.
     * @param memToID       The UUID member ID of the intended recipient.
     * @param contentIn     The message contents.
     */
    public SendMessageToRequest(UUID memToID, String contentIn){
        memberToID = memToID.toString();
        content = contentIn;
    }

    /**
     * Constructor for a send message to another user request,
     * with the ID for the intended member, the content
     * of a message, the latitude and longitude, and message
     * type for parameters.
     * @param memToID       The UUID member ID of the intended recipient.
     * @param contentIn     The message contents.
     * @param lat           The latitude to be sent.
     * @param longi         The longitude to be sent.
     * @param messType      The type of message to be sent.
     */
    public SendMessageToRequest(UUID memToID, String contentIn, double lat, double longi, String messType){
        memberToID = memToID.toString();
        content = contentIn;
        longitude = longi;
        lattitude = lat;
        messageType = messType;
    }

    /**
     * Returns the type of message to be sent.
     * @return messageType  The type of message to be sent.
     */
    public String getMessageType() {
        return messageType;
    }

    /**
     * Sets the type of message to be sent.
     * @param messageType   The type of message to be sent.
     */
    public void setMessageType(String messageType) {
        this.messageType = messageType;
    }

    /**
     * Returns the content of the message to be sent.
     * @return content      The message contents.
     */
    public String getContent() {
        return content;
    }

    /**
     * Sets the content of the message to be sent.
     * @param content       The message contents.
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * Returns the latitude for the message to be sent.
     * @return lattitude    The latitude to be sent.
     */
    public double getLattitude() {
        return lattitude;
    }

    /**
     * Sets the latitude value to be sent.
     * @param lattitude     The latitude to be sent.
     */
    public void setLattitude(double lattitude) {
        this.lattitude = lattitude;
    }

    /**
     * Returns the longitude for the message to be sent.
     * @return longitude    The longitude to be sent.
     */
    public double getLongitude() {
        return longitude;
    }

    /**
     * Sets the longitude value to be sent.
     * @param longitude     The longitude to be sent.
     */
    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }

    /**
     * Returns the member ID of the user you wish to send
     * a message to.
     * @return memberToID   The recipients memberid.
     */
    public String getMemberToID() {
        return memberToID;
    }

    /**
     * Sets the member ID of the user you wish to send
     * a message to.
     * @param memberToID    The recipients memberid.
     */
    public void setMemberToID(String memberToID) {
        this.memberToID = memberToID;
    }
}
